clear
clc

max_v=1.2;
min_v=0.3;
max_dist=10;
min_dist=0.5;
max_sig=pi/2;
min_sig=-pi/2;

R_min=0.13;

sio_crash_max=2;
sio_crash_min=R_min;
min_sio=min_sig;
max_sio=max_sig;

dist_rand=max_dist*rand(30,1);
dist_range=[dist_rand;0;max_dist];
%正最大角
% sig_rand=0+(max_sig-0)*rand(30,1);
% sig_range=[sig_rand;0;max_sig];
%负最大角
sig_rand=min_sig+(0-min_sig)*rand(30,1);
sig_range=[sig_rand;0;min_sig];

% sio_rand=sio_crash_min+(sio_crash_max-sio_crash_min)*rand(30,1);
sio_rand=sio_crash_max*rand(30,1);
sio_range=[sio_rand;sio_crash_max;0];
%正最大角
% dsio_rand=0+(max_sio-0)*rand(30,1);
% dsio_range=[dsio_rand;0;max_sio];
%负最大角
dsio_rand=min_sio+(0-min_sio)*rand(30,1);
dsio_range=[dsio_rand;0;min_sio];

v_range=[];
w_range=[];
number=size(sio_range);
for i=1:number(1)
    sioi=sio_range(i);
    dsioi=dsio_range(i);
    %
    if(dsioi>=0)
        dss=sioi*cos(pi/2-dsioi);
        dsi=sioi*sin(pi/2-dsioi);
        dcom=sqrt((dss+R_min)*(dss+R_min)+dsi*dsi);
        if(dcom>=2*R_min)
            if(sioi>=1)
                vi=(max_v+min_v)/2;
                wi=-vi/R_min;
            else
                vi=min_v;
                wi=-vi/R_min;
            end
        else
            vi=0;
            wi=0;
        end
    else
        dss=sioi*cos(-pi/2-dsioi);
        dsi=sioi*sin(-pi/2-dsioi);
        dcom=sqrt((dss+R_min)*(dss+R_min)+dsi*dsi);
        if(dcom>=2*R_min)
            if(sioi>=1)
                vi=(max_v+min_v)/2;
                wi=vi/R_min;
            else
                vi=min_v;
                wi=vi/R_min;
            end
        else
            vi=0;
            wi=0;
        end
    end
    if(dsioi==pi/2||dsioi==-pi/2)
        if(sioi>=R_min)
            vi=-1;
            wi=-1;
        else
            vi=0;
            wi=0;
        end
    end
    v_range=[v_range;vi];
    w_range=[w_range;wi];
end